CodeIgniter এ সেশন (Session) এবং কুকিজ (Cookies) ব্যবহৃত হয় ব্যবহারকারীর তথ্য সংরক্ষণ ও পরিচালনার জন্য। সেশন এবং কুকিজ সঠিকভাবে সিকিউর না হলে নিরাপত্তাজনিত ঝুঁকি তৈরি হতে পারে। CodeIgniter এর বিল্ট-ইন টুলস ব্যবহার করে সেশন এবং কুকিজ সিকিউর করা যায়।
Session হলো একটি ব্যবহারকারীর তথ্য সাময়িকভাবে সার্ভারে সংরক্ষণ করার একটি পদ্ধতি। এটি সাধারণত একটি সেশন আইডি ব্যবহার করে ব্যবহারকারীকে শনাক্ত করে।
CodeIgniter এ সেশন কনফিগারেশন app/Config/App.php
ফাইলে করা হয়।
$sessionDriver
, $sessionCookieName
, $sessionSavePath
, এবং $sessionExpiration
গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার।
public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler';
public $sessionCookieName = 'ci_session';
public $sessionSavePath = WRITEPATH . 'session';
public $sessionExpiration = 7200; // সেশনের মেয়াদ (সেকেন্ডে)
public $sessionMatchIP = false; // আইপি মিলানোর জন্য
public $sessionTimeToUpdate = 300; // সেশন আইডি আপডেটের সময়
public $sessionRegenerateDestroy = false;
HTTPOnly কুকিজ ব্যবহার করুন: সেশন কুকিজ জাভাস্ক্রিপ্ট থেকে অ্যাক্সেস বন্ধ করতে:
public $cookieSecure = true;
আইপি মিলান সক্রিয় করুন: প্রতিটি সেশনের জন্য ব্যবহারকারীর আইপি নিশ্চিত করতে:
public $sessionMatchIP = true;
Controller এ session()
হেল্পার ব্যবহার করে সেশন ডেটা সেট করা যায়:
$session = session();
$session->set('user_id', 123);
$session->set('user_email', 'user@example.com');
$session = session();
$userId = $session->get('user_id');
$userEmail = $session->get('user_email');
একটি নির্দিষ্ট ডেটা মুছে ফেলার জন্য:
$session->remove('user_id');
সকল সেশন ডেটা মুছে ফেলার জন্য:
$session->destroy();
Cookie হলো একটি ছোট ফাইল যা ব্রাউজারের মাধ্যমে ব্যবহারকারীর ডিভাইসে সংরক্ষণ করা হয়। এটি সাধারণত ব্যবহারকারীর পছন্দ এবং লগইন তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
CodeIgniter এ কুকিজ কনফিগারেশন app/Config/App.php
ফাইলে করা হয়।
public $cookiePrefix = ''; // কুকিজের জন্য প্রিফিক্স
public $cookieDomain = ''; // ডোমেইন যেখানে কুকিজ প্রযোজ্য
public $cookiePath = '/'; // কুকিজ প্রযোজ্য পথ
public $cookieSecure = true; // শুধুমাত্র HTTPS এর জন্য কুকিজ
public $cookieHTTPOnly = true; // জাভাস্ক্রিপ্ট থেকে কুকিজ অ্যাক্সেস নিষিদ্ধ
setcookie()
ফাংশন ব্যবহার করে কুকিজ সেট করা যায়:
$cookie = [
'name' => 'user_preference',
'value' => 'dark_mode',
'expire' => 3600, // ১ ঘণ্টা
'path' => '/',
'secure' => true,
'httponly' => true,
];
setcookie($cookie['name'], $cookie['value'], $cookie['expire'], $cookie['path'], '', $cookie['secure'], $cookie['httponly']);
$cookieValue = $_COOKIE['user_preference'] ?? null;
setcookie('user_preference', '', time() - 3600, '/');
cookieSecure
কনফিগারেশন সক্রিয় রাখুন।HTTPOnly কুকিজ: কুকিজকে শুধুমাত্র HTTP প্রোটোকলের মাধ্যমে অ্যাক্সেসযোগ্য করে তুলুন:
public $cookieHTTPOnly = true;
সেশন আইডি পুনর্জন্ম: প্রতিবার লগইন বা গুরুত্বপূর্ণ কাজের সময় সেশন আইডি পুনর্জন্ম করুন:
session()->regenerate();
CodeIgniter এ সেশন এবং কুকিজ পরিচালনা নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ। সঠিক কনফিগারেশন এবং সেরা চর্চা অনুসরণ করলে ডেটা চুরি এবং নিরাপত্তা ঝুঁকি প্রতিরোধ করা যায়। সেশন এবং কুকিজ সিকিউর করার জন্য CodeIgniter এর বিল্ট-ইন কনফিগারেশন এবং টুলগুলো যথেষ্ট কার্যকর।
Read more